{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-vision-core",
      "artifactVersion": "1.3.4",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "nuxeo-vision-aws",
          "nuxeo-vision-core",
          "nuxeo-vision-google",
          "org.nuxeo.dmk-adaptor",
          "org.nuxeo.ecm.platform.lang.ext"
        ],
        "hierarchyPath": "/grp:org.nuxeo",
        "id": "grp:org.nuxeo",
        "name": "org.nuxeo",
        "parentIds": [],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "# About / Synopsis\nThis plugin provides a wrapper for Computer Vision Services. Currently it supports the [Google Vision API](https://cloud.google.com/vision/) and the [AWS Rekognition API](https://aws.amazon.com/rekognition/).\n  \n# Installation\n## Google Vision\n- Configure a [Google service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount)\n- As of march 2nd 2016, billing must be activated in your google account in order to use the Vision API\n- Upload the JSON key file on your instance\n- Edit nuxeo.conf\n```\norg.nuxeo.vision.google.credential=PATH_TO_JSON_CREDENTIAL_FILE\n```\n\n## AWS Rekognition\n- Configure a key/secret pair in the [AWS console](http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)\n- Check the [FAQ](https://aws.amazon.com/rekognition/faqs/) to see in which regions the API is available \n- Edit nuxeo.conf\n```\norg.nuxeo.vision.default.provider=aws\norg.nuxeo.vision.aws.region=\norg.nuxeo.vision.aws.key=\norg.nuxeo.vision.aws.secret=\n```\n\n##Plugin\n- From the Nuxeo Marketplace: install [the Nuxeo Vision package](https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-vision).\n- From the Nuxeo server web UI \"Admin / Update Center / Packages from Nuxeo Marketplace\"\n- From the command line: `nuxeoctl mp-install nuxeo-vision`\n  \n# Code\n## QA\n[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=plugins_nuxeo-vision-master)](https://qa.nuxeo.org/jenkins/job/plugins_nuxeo-vision-master/)\n \n## Requirements\nBuild requires the following software:\n- git\n- maven\n \n## Limitations\nN/A\n \n## Build\n```\ngit clone https://github.com/nuxeo/nuxeo-vision\ncd nuxeo-vision\nmvn clean install\n```\n \n## Deploy (how to install build product)\n- Install the marketplace package\n\n###Google Vision\n- Configure a [Google service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount)\n- As of march 2nd 2016, billing must be activated in your google account in order to use the Vision API\n- Upload the JSON key file on your instance\n- Edit nuxeo.conf\n```\norg.nuxeo.vision.google.credential=PATH_TO_JSON_CREDENTIAL_FILE\n```\n\n###AWS Rekognition\n- Uses the credentials defined by the Nuxeo AWS service.\n- Check the [FAQ](https://aws.amazon.com/rekognition/faqs/) to see in which regions the API is available \n- Edit nuxeo.conf\n```\norg.nuxeo.vision.default.provider=aws\nnuxeo.aws.accessKeyId=your_AWS_ACCESS_KEY_ID\nnuxeo.aws.secretKey=your_AWS_SECRET_ACCESS_KEY\nnuxeo.aws.region=your_AWS_REGION\n```\n \n# Resources (Documentation and other links)\n[Plugin Documentation](https://doc.nuxeo.com/x/PYHZAQ)\n[Google Vision](https://cloud.google.com/vision/)\n[AWS Rekognition](https://aws.amazon.com/rekognition/)\n \n# Contributing / Reporting issues\n[JIRA](https://jira.nuxeo.com/browse/NXP/component/15408/)\n \n# License\n[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)\n \n# About Nuxeo\nThe [Nuxeo Platform](http://www.nuxeo.com/products/content-management-platform/) is an open source customizable and extensible content management platform for building business applications. It provides the foundation for developing [document management](http://www.nuxeo.com/solutions/document-management/), [digital asset management](http://www.nuxeo.com/solutions/digital-asset-management/), [case management application](http://www.nuxeo.com/solutions/case-management/) and [knowledge management](http://www.nuxeo.com/solutions/advanced-knowledge-base/). You can easily add features using ready-to-use addons or by extending the platform using its extension point system.\n \nThe Nuxeo Platform is developed and supported by Nuxeo, with contributions from the community.\n \nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with\nSaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris.\nMore information is available at [www.nuxeo.com](http://www.nuxeo.com).",
            "digest": "d5a61bdab036e7fb8237d2950177ac50",
            "encoding": "UTF-8",
            "length": 4357,
            "mimeType": "text/plain",
            "name": "README.md"
          }
        ],
        "version": "10.10"
      },
      "bundleId": "nuxeo-vision-core",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.vision.core.service.VisionImpl",
          "documentation": "\n    A service that performs Computer Vision tasks like classification, OCR, Face Detection ...\n  \n",
          "documentationHtml": "<p>\nA service that performs Computer Vision tasks like classification, OCR, Face Detection ...\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.vision.core.service",
              "descriptors": [
                "org.nuxeo.vision.core.service.VisionDescriptor"
              ],
              "documentation": "Used to the default behavior of the service\n",
              "documentationHtml": "<p>\nUsed to the default behavior of the service</p>",
              "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.service/ExtensionPoints/org.nuxeo.vision.core.service--configuration",
              "id": "org.nuxeo.vision.core.service--configuration",
              "label": "configuration (org.nuxeo.vision.core.service)",
              "name": "configuration",
              "version": "1.3.4"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.vision.core.service",
              "descriptors": [
                "org.nuxeo.vision.core.service.VisionProviderDescriptor"
              ],
              "documentation": "Used to define a new vision service provider\n",
              "documentationHtml": "<p>\nUsed to define a new vision service provider</p>",
              "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.service/ExtensionPoints/org.nuxeo.vision.core.service--provider",
              "id": "org.nuxeo.vision.core.service--provider",
              "label": "provider (org.nuxeo.vision.core.service)",
              "name": "provider",
              "version": "1.3.4"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.vision.core.service--configuration",
              "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.service/Contributions/org.nuxeo.vision.core.service--configuration",
              "id": "org.nuxeo.vision.core.service--configuration",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.vision.core.service",
                "name": "org.nuxeo.vision.core.service",
                "type": "service"
              },
              "version": "1.3.4",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.vision.core.service\">\n    <configuration>\n      <pictureMapperChainName>javascript.PictureVisionDefaultMapper</pictureMapperChainName>\n      <videoMapperChainName>javascript.VideoVisionDefaultMapper</videoMapperChainName>\n      <defaultProviderName>google</defaultProviderName>\n    </configuration>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.service",
          "name": "org.nuxeo.vision.core.service",
          "requirements": [],
          "resolutionOrder": 942,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.vision.core.service",
              "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.service/Services/org.nuxeo.vision.core.service.Vision",
              "id": "org.nuxeo.vision.core.service.Vision",
              "overriden": false,
              "version": "1.3.4"
            }
          ],
          "startOrder": 980,
          "version": "1.3.4",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.vision.core.service\" version=\"1.0\">\n\n  <documentation>\n    A service that performs Computer Vision tasks like classification, OCR, Face Detection ...\n  </documentation>\n\n  <implementation class=\"org.nuxeo.vision.core.service.VisionImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.vision.core.service.Vision\" />\n  </service>\n\n  <extension-point name=\"configuration\">\n    <documentation>Used to the default behavior of the service</documentation>\n    <object class=\"org.nuxeo.vision.core.service.VisionDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"provider\">\n    <documentation>Used to define a new vision service provider</documentation>\n    <object class=\"org.nuxeo.vision.core.service.VisionProviderDescriptor\" />\n  </extension-point>\n\n  <extension target=\"org.nuxeo.vision.core.service\" point=\"configuration\">\n    <configuration>\n      <pictureMapperChainName>javascript.PictureVisionDefaultMapper</pictureMapperChainName>\n      <videoMapperChainName>javascript.VideoVisionDefaultMapper</videoMapperChainName>\n      <defaultProviderName>${org.nuxeo.vision.default.provider:=}</defaultProviderName>\n    </configuration>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/computer-vision-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.listener/Contributions/org.nuxeo.vision.core.listener--listener",
              "id": "org.nuxeo.vision.core.listener--listener",
              "registrationOrder": 52,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "1.3.4",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n\n    <listener async=\"true\" class=\"org.nuxeo.vision.core.listener.PictureConversionChangedListener\" name=\"visionPictureConversionChangedListener\" postCommit=\"true\" priority=\"20\">\n      <event>pictureViewsGenerationDone</event>\n    </listener>\n\n    <listener async=\"false\" class=\"org.nuxeo.vision.core.listener.VideoStoryboardChangedListener\" name=\"visionVideoChangedListener\" postCommit=\"false\" priority=\"20\">\n      <event>beforeDocumentModification</event>\n    </listener>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.listener",
          "name": "org.nuxeo.vision.core.listener",
          "requirements": [],
          "resolutionOrder": 943,
          "services": [],
          "startOrder": 793,
          "version": "1.3.4",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.vision.core.listener\">\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\" point=\"listener\">\n\n    <listener name=\"visionPictureConversionChangedListener\" async=\"true\" postCommit=\"true\"\n      class=\"org.nuxeo.vision.core.listener.PictureConversionChangedListener\" priority=\"20\">\n      <event>pictureViewsGenerationDone</event>\n    </listener>\n\n    <listener name=\"visionVideoChangedListener\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.vision.core.listener.VideoStoryboardChangedListener\" priority=\"20\">\n      <event>beforeDocumentModification</event>\n    </listener>\n\n  </extension>\n</component>",
          "xmlFileName": "/OSGI-INF/listener-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.operation/Contributions/org.nuxeo.vision.core.operation--operations",
              "id": "org.nuxeo.vision.core.operation--operations",
              "registrationOrder": 31,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "1.3.4",
              "xml": "<extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <operation class=\"org.nuxeo.vision.core.operation.VisionOp\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.operation",
          "name": "org.nuxeo.vision.core.operation",
          "requirements": [],
          "resolutionOrder": 944,
          "services": [],
          "startOrder": 794,
          "version": "1.3.4",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.vision.core.operation\" version=\"1.0\">\n  <extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <operation class=\"org.nuxeo.vision.core.operation.VisionOp\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/operation-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.automation.scripting.internals.AutomationScriptingComponent--operation",
              "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.chains/Contributions/org.nuxeo.vision.core.chains--operation",
              "id": "org.nuxeo.vision.core.chains--operation",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.automation.scripting.internals.AutomationScriptingComponent",
                "name": "org.nuxeo.automation.scripting.internals.AutomationScriptingComponent",
                "type": "service"
              },
              "version": "1.3.4",
              "xml": "<extension point=\"operation\" target=\"org.nuxeo.automation.scripting.internals.AutomationScriptingComponent\">\n    <scriptedOperation id=\"javascript.PictureVisionDefaultMapper\">\n      <inputType>Document</inputType>\n      <outputType>Document</outputType>\n      <category>javascript</category>\n      <description/>\n      <script><![CDATA[function run(input, params) {\n\n              var blob = Picture.GetView(input, {'viewName': 'Medium'});\n\n              blob = VisionOp(blob, {\n                'features': ['LABEL_DETECTION'],\n                'maxResults': 5,\n                'outputVariable': 'annotations'\n              });\n\n              var annotations = ctx.annotations;\n\n              if (annotations===undefined || annotations.length===0) return;\n\n              var textAndLabels = annotations[0];\n\n              // build tag list\n              var labels = textAndLabels.getClassificationLabels();\n\n              if (labels !== undefined && labels !== null && labels.length>0) {\n                  var tags = [];\n                  for(var i=0;i<labels.length;i++) {\n                    var label = labels[i];\n                    var tag = label.getText();\n                    if (tag ===undefined || tag ===null) continue;\n                    tags.push(tag.replace(/[^A-Z0-9]+/ig,'+'));\n                  }\n\n                  input = Services.TagDocument(input, {'tags': tags });\n              }\n\n              return input;\n\n        }]]></script>\n    </scriptedOperation>\n\n    <scriptedOperation id=\"javascript.VideoVisionDefaultMapper\">\n      <inputType>Document</inputType>\n      <outputType>Document</outputType>\n      <category>javascript</category>\n      <description/>\n      <script><![CDATA[function run(input, params) {\n              var storyboard = input['vid:storyboard'];\n              var blobs = [];\n              var index;\n              var tags = [];\n\n              for (index=0;index<storyboard.length;index++) {\n\n                var blob = storyboard[index].content;\n\n                VisionOp(blob, {\n                  'features': ['LABEL_DETECTION'],\n                  'maxResults': 5,\n                  'outputVariable': 'annotations'\n                });\n\n                var annotations = ctx.annotations;\n\n                if (annotations===undefined || annotations.length===0) return;\n\n                // build tag list\n                var textAndLabels = annotations[0];\n                var labels = textAndLabels.getClassificationLabels();\n\n                if (labels === undefined || labels === null || labels===0) continue;\n\n                for(var j=0;j<labels.length;j++) {\n                    var label = labels[j];\n                    var tag = label.getText();\n                    if (tag ===undefined || tag ===null) continue;\n                    tags.push(tag.replace(/[^A-Z0-9]+/ig,'+'));\n                    tags.push(label.getText().replace(/\\s/g,'+'));\n                }\n              }\n\n              input = Services.TagDocument(input, {'tags': tags });\n\n              return input;\n\n            }]]></script>\n    </scriptedOperation>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core/org.nuxeo.vision.core.chains",
          "name": "org.nuxeo.vision.core.chains",
          "requirements": [],
          "resolutionOrder": 945,
          "services": [],
          "startOrder": 792,
          "version": "1.3.4",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.vision.core.chains\">\n  <extension target=\"org.nuxeo.automation.scripting.internals.AutomationScriptingComponent\" point=\"operation\">\n    <scriptedOperation id=\"javascript.PictureVisionDefaultMapper\">\n      <inputType>Document</inputType>\n      <outputType>Document</outputType>\n      <category>javascript</category>\n      <description></description>\n      <script><![CDATA[function run(input, params) {\n\n              var blob = Picture.GetView(input, {'viewName': 'Medium'});\n\n              blob = VisionOp(blob, {\n                'features': ['LABEL_DETECTION'],\n                'maxResults': 5,\n                'outputVariable': 'annotations'\n              });\n\n              var annotations = ctx.annotations;\n\n              if (annotations===undefined || annotations.length===0) return;\n\n              var textAndLabels = annotations[0];\n\n              // build tag list\n              var labels = textAndLabels.getClassificationLabels();\n\n              if (labels !== undefined && labels !== null && labels.length>0) {\n                  var tags = [];\n                  for(var i=0;i<labels.length;i++) {\n                    var label = labels[i];\n                    var tag = label.getText();\n                    if (tag ===undefined || tag ===null) continue;\n                    tags.push(tag.replace(/[^A-Z0-9]+/ig,'+'));\n                  }\n\n                  input = Services.TagDocument(input, {'tags': tags });\n              }\n\n              return input;\n\n        }]]></script>\n    </scriptedOperation>\n\n    <scriptedOperation id=\"javascript.VideoVisionDefaultMapper\">\n      <inputType>Document</inputType>\n      <outputType>Document</outputType>\n      <category>javascript</category>\n      <description></description>\n      <script><![CDATA[function run(input, params) {\n              var storyboard = input['vid:storyboard'];\n              var blobs = [];\n              var index;\n              var tags = [];\n\n              for (index=0;index<storyboard.length;index++) {\n\n                var blob = storyboard[index].content;\n\n                VisionOp(blob, {\n                  'features': ['LABEL_DETECTION'],\n                  'maxResults': 5,\n                  'outputVariable': 'annotations'\n                });\n\n                var annotations = ctx.annotations;\n\n                if (annotations===undefined || annotations.length===0) return;\n\n                // build tag list\n                var textAndLabels = annotations[0];\n                var labels = textAndLabels.getClassificationLabels();\n\n                if (labels === undefined || labels === null || labels===0) continue;\n\n                for(var j=0;j<labels.length;j++) {\n                    var label = labels[j];\n                    var tag = label.getText();\n                    if (tag ===undefined || tag ===null) continue;\n                    tags.push(tag.replace(/[^A-Z0-9]+/ig,'+'));\n                    tags.push(label.getText().replace(/\\s/g,'+'));\n                }\n              }\n\n              input = Services.TagDocument(input, {'tags': tags });\n\n              return input;\n\n            }]]></script>\n    </scriptedOperation>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/default-chain-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-vision-core-1.3.4.jar",
      "groupId": "org.nuxeo",
      "hierarchyPath": "/grp:org.nuxeo/nuxeo-vision-core",
      "id": "nuxeo-vision-core",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_191\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 1.0.0\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Vendor: Nuxeo\r\nBundle-Name: nuxeo-vision-core\r\nBundle-SymbolicName: nuxeo-vision-core;singleton=true\r\nNuxeo-Component: OSGI-INF/computer-vision-service.xml,OSGI-INF/listene\r\n r-contrib.xml,OSGI-INF/operation-contrib.xml,OSGI-INF/default-chain-c\r\n ontrib.xml\r\n\r\n",
      "maxResolutionOrder": 945,
      "minResolutionOrder": 942,
      "packages": [
        "nuxeo-vision"
      ],
      "parentReadme": {
        "blobProviderId": "default",
        "content": "# About / Synopsis\nThis plugin provides a wrapper for Computer Vision Services. Currently it supports the [Google Vision API](https://cloud.google.com/vision/) and the [AWS Rekognition API](https://aws.amazon.com/rekognition/).\n  \n# Installation\n## Google Vision\n- Configure a [Google service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount)\n- As of march 2nd 2016, billing must be activated in your google account in order to use the Vision API\n- Upload the JSON key file on your instance\n- Edit nuxeo.conf\n```\norg.nuxeo.vision.google.credential=PATH_TO_JSON_CREDENTIAL_FILE\n```\n\n## AWS Rekognition\n- Configure a key/secret pair in the [AWS console](http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)\n- Check the [FAQ](https://aws.amazon.com/rekognition/faqs/) to see in which regions the API is available \n- Edit nuxeo.conf\n```\norg.nuxeo.vision.default.provider=aws\norg.nuxeo.vision.aws.region=\norg.nuxeo.vision.aws.key=\norg.nuxeo.vision.aws.secret=\n```\n\n##Plugin\n- From the Nuxeo Marketplace: install [the Nuxeo Vision package](https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-vision).\n- From the Nuxeo server web UI \"Admin / Update Center / Packages from Nuxeo Marketplace\"\n- From the command line: `nuxeoctl mp-install nuxeo-vision`\n  \n# Code\n## QA\n[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=plugins_nuxeo-vision-master)](https://qa.nuxeo.org/jenkins/job/plugins_nuxeo-vision-master/)\n \n## Requirements\nBuild requires the following software:\n- git\n- maven\n \n## Limitations\nN/A\n \n## Build\n```\ngit clone https://github.com/nuxeo/nuxeo-vision\ncd nuxeo-vision\nmvn clean install\n```\n \n## Deploy (how to install build product)\n- Install the marketplace package\n\n###Google Vision\n- Configure a [Google service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount)\n- As of march 2nd 2016, billing must be activated in your google account in order to use the Vision API\n- Upload the JSON key file on your instance\n- Edit nuxeo.conf\n```\norg.nuxeo.vision.google.credential=PATH_TO_JSON_CREDENTIAL_FILE\n```\n\n###AWS Rekognition\n- Uses the credentials defined by the Nuxeo AWS service.\n- Check the [FAQ](https://aws.amazon.com/rekognition/faqs/) to see in which regions the API is available \n- Edit nuxeo.conf\n```\norg.nuxeo.vision.default.provider=aws\nnuxeo.aws.accessKeyId=your_AWS_ACCESS_KEY_ID\nnuxeo.aws.secretKey=your_AWS_SECRET_ACCESS_KEY\nnuxeo.aws.region=your_AWS_REGION\n```\n \n# Resources (Documentation and other links)\n[Plugin Documentation](https://doc.nuxeo.com/x/PYHZAQ)\n[Google Vision](https://cloud.google.com/vision/)\n[AWS Rekognition](https://aws.amazon.com/rekognition/)\n \n# Contributing / Reporting issues\n[JIRA](https://jira.nuxeo.com/browse/NXP/component/15408/)\n \n# License\n[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)\n \n# About Nuxeo\nThe [Nuxeo Platform](http://www.nuxeo.com/products/content-management-platform/) is an open source customizable and extensible content management platform for building business applications. It provides the foundation for developing [document management](http://www.nuxeo.com/solutions/document-management/), [digital asset management](http://www.nuxeo.com/solutions/digital-asset-management/), [case management application](http://www.nuxeo.com/solutions/case-management/) and [knowledge management](http://www.nuxeo.com/solutions/advanced-knowledge-base/). You can easily add features using ready-to-use addons or by extending the platform using its extension point system.\n \nThe Nuxeo Platform is developed and supported by Nuxeo, with contributions from the community.\n \nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with\nSaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris.\nMore information is available at [www.nuxeo.com](http://www.nuxeo.com).",
        "digest": "d5a61bdab036e7fb8237d2950177ac50",
        "encoding": "UTF-8",
        "length": 4357,
        "mimeType": "text/plain",
        "name": "README.md"
      },
      "requirements": [],
      "version": "1.3.4"
    }
  ],
  "creationDate": 1664793571025,
  "key": "Nuxeo Platform LTS 2019-10.10",
  "name": "Nuxeo Platform LTS 2019",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Files",
      "contributingComponent": "org.nuxeo.vision.core.operation",
      "description": "Call the Computer Vision Service for the input blob(s)",
      "hierarchyPath": "/op:VisionOp",
      "label": "Call the Computer Vision Service",
      "name": "VisionOp",
      "operationClass": "org.nuxeo.vision.core.operation.VisionOp",
      "params": [
        {
          "description": "A StringList of features to request from the API",
          "isRequired": true,
          "name": "features",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": "The maximum number of results per feature",
          "isRequired": true,
          "name": "maxResults",
          "order": 0,
          "type": "int",
          "values": [],
          "widget": null
        },
        {
          "description": "The key of the context output variable. The output variable is a list of VisionResponse objects. ",
          "isRequired": true,
          "name": "outputVariable",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "The vision provider name",
          "isRequired": false,
          "name": "provider",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "bloblist",
        "bloblist",
        "blob",
        "blob"
      ],
      "since": "",
      "url": "VisionOp",
      "version": "10.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "javascript",
      "contributingComponent": "org.nuxeo.vision.core.chains",
      "description": "",
      "hierarchyPath": "/op:javascript.VideoVisionDefaultMapper",
      "label": "javascript.VideoVisionDefaultMapper",
      "name": "javascript.VideoVisionDefaultMapper",
      "operationClass": "org.nuxeo.automation.scripting.internals.ScriptingOperationImpl",
      "params": [],
      "signature": [
        "Document",
        "Document"
      ],
      "url": "javascript.VideoVisionDefaultMapper",
      "version": "10.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "javascript",
      "contributingComponent": "org.nuxeo.vision.core.chains",
      "description": "",
      "hierarchyPath": "/op:javascript.PictureVisionDefaultMapper",
      "label": "javascript.PictureVisionDefaultMapper",
      "name": "javascript.PictureVisionDefaultMapper",
      "operationClass": "org.nuxeo.automation.scripting.internals.ScriptingOperationImpl",
      "params": [],
      "signature": [
        "Document",
        "Document"
      ],
      "url": "javascript.PictureVisionDefaultMapper",
      "version": "10.10"
    }
  ],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.runtime.aws",
        "nuxeo-vision-aws",
        "nuxeo-vision-core",
        "nuxeo-vision-google"
      ],
      "conflicts": [],
      "dependencies": [
        "nuxeo-dam"
      ],
      "hierarchyPath": "/nuxeo-vision-1.3.4",
      "id": "nuxeo-vision-1.3.4",
      "name": "nuxeo-vision",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Nuxeo Vision",
      "version": "1.3.4"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1547942400000,
  "version": "10.10"
}